package com.vcc.service.service;

import cn.hutool.core.date.DateTime;
import com.alibaba.fastjson2.JSONObject;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.service.IService;
import com.vcc.data.entity.Role;
import com.vcc.data.entity.Withdraw;
import com.vcc.service.boss.request.withdraw.AuditOrderDto;

import java.math.BigDecimal;
import java.util.List;

public interface WithdrawService extends IService<Withdraw> {

    Long getDaySubmitCount(Long userId);

    BigDecimal getDaySumSubmitAmount(Long userId);


    Page<Withdraw> paging(Page<Withdraw> pageable, Role role, Long userId, Long targetUserId, String type, String startDate, String endDate, String remark, Integer status);

    Page<Withdraw> paging(
            Page<Withdraw> pageable,
            Long targetUserId,
            String type,
            Integer status,
            String startDate,
            String endDate,
            String remark,
            Long dealerId);

    Boolean audit(
            AuditOrderDto auditOrderDto
    );

    List<JSONObject> statistics();

    List<JSONObject> statistics(DateTime startDate, DateTime endDate);

    List<JSONObject> statistics(DateTime startDate, DateTime endDate, Long userId, Long dealerId);
}
